home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio 5 / Ray Dream.iso / pc / DreamSDK / Windows / INCLUDES / ISHSMP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-11  |  3.5 KB  |  92 lines

  1. /* $Id: ISHSMP.H 1.3 1997/05/15 03:13:38 Emil Exp $ */
  2. /*****************************************************************************\
  3. *                                                                             *
  4. * I3DShUti.h                                                                                *
  5. *   IShSMPUtilities definition                                                *
  6. *                                                                             *
  7. *           Copyright (c) 1995-1196, Ray Dream, Inc. All rights reserved.     *
  8. *                                                                             *
  9. \*****************************************************************************/
  10.  
  11. #ifndef __ISHSMP__
  12. #define __ISHSMP__
  13.  
  14. #ifndef __3DCOTYPE__
  15. #include "3DCoType.h"
  16. #endif
  17.  
  18.  
  19. /****** Globally Unique Ids **************************************************/
  20. DEFINE_GUID(IID_IShSMPUtilities, 0x900b69f1, 0x701b, 0x11d0, 0xb2, 0xb5, 0x0, 0xaa, 0x0, 0x4b, 0x60, 0xe7);
  21. DEFINE_GUID(IID_IShCriticalSection, 0xc31c8180, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
  22. DEFINE_GUID(IID_IShLocalStorage, 0xc31c8181, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
  23. DEFINE_GUID(IID_IShSemaphore, 0xc31c8182, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
  24. DEFINE_GUID(IID_IShAtomicCounter, 0xc31c8183, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
  25.  
  26.  
  27. DECLARE_INTERFACE_(IShCriticalSection, IUnknown) {
  28.     // IUnknown methods
  29.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
  30.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  31.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  32.  
  33.     // IShCriticalSection methods
  34.   STDMETHOD(Enter) (THIS) PURE;
  35.   STDMETHOD(Leave) (THIS) PURE;
  36.     };
  37.  
  38. DECLARE_INTERFACE_(IShLocalStorage, IUnknown) {
  39.     // IUnknown methods
  40.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
  41.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  42.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  43.  
  44.     // IShLocalStorage methods
  45.   STDMETHOD_(LPVOID, GetValue) (THIS) PURE;
  46.   STDMETHOD(SetValue) (THIS_ LPVOID value) PURE;
  47.     };
  48.  
  49. DECLARE_INTERFACE_(IShSemaphore, IUnknown) {
  50.     // IUnknown methods
  51.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
  52.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  53.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  54.  
  55.     // IShSemaphore methods
  56.   STDMETHOD(Signal) (THIS) PURE;
  57.   STDMETHOD_(BOOLEAN, WaitForSignal) (THIS_ BOOLEAN wait) PURE;
  58.     };
  59.  
  60. DECLARE_INTERFACE_(IShAtomicCounter, IUnknown) {
  61.     // IUnknown methods
  62.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
  63.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  64.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  65.  
  66.     // IShAtomicCounter methods
  67.   STDMETHOD(SetValue) (THIS_ long value) PURE;
  68.   STDMETHOD_(long, GetValue) (THIS) PURE;
  69.   STDMETHOD(Increment) (THIS) PURE;
  70.   STDMETHOD(Decrement) (THIS) PURE;
  71.     };
  72.  
  73. DECLARE_INTERFACE_(IShSMPUtilities, IUnknown) {
  74.     // IUnknown methods
  75.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
  76.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  77.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  78.  
  79.     // IShSMPUtities methods
  80.   STDMETHOD_(IShCriticalSection*, CreateCriticalSection) (THIS) PURE;
  81.   STDMETHOD_(IShLocalStorage*, CreateLocalStorage) (THIS) PURE;
  82.   STDMETHOD_(IShSemaphore*, CreateSemaphore) (THIS_ long maxValue, long initialValue) PURE;
  83.   STDMETHOD_(ULONG, GetNumberOfProcessors) (THIS) PURE;
  84.   STDMETHOD_(BOOLEAN, AreSystemCallsSafe) (THIS) PURE;
  85.   STDMETHOD_(IShAtomicCounter*, CreateAtomicCounter) (THIS) PURE;
  86.     };
  87.  
  88. #endif
  89.  
  90.  
  91.  
  92.